/* Red Hat Mono */
@import url("https://fonts.googleapis.com/css2?family=Red+Hat+Mono:ital,wght@0,300..700;1,300..700&display=swap");

/* Sarabun */
@import url("https://fonts.googleapis.com/css2?family=Sarabun:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800&display=swap");

/* Zen Kaku Gothic New */
@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap");

body {
  background-color: #e7ecef;
  font-family: "Zen Kaku Gothic New", sans-serif;
  /* font-family: "Red Hat Mono"; */
  font-weight: 400;

  margin: 0px;
}

::selection {
  background-color: #c5dbed;
}

hr {
  border-top: 0.5px solid;
}

:is(h3, h4, h5, h6) {
  margin-block-end: 0.5em;
}

p,
ul {
  margin-block-start: 0.3em;
  margin-block-end: 1.7em;
}

:is(h1, h2, h3, h4, h5, h6) {
  font-family: "Sarabun";
  font-weight: 600;
}

h1 {
  font-size: 2.6rem;
}

h2 {
  font-size: 1.4rem;
}

h3 {
  font-size: 1.2rem;
}

.body-box {
  margin-left: 1.8rem;
  margin-right: 10%;

  margin-top: 2.5rem;
  margin-bottom: 1.6rem;

  line-height: 1.5em;
  transition: all 0.6s;
}

.h45 {
  font-size: 13.64px;

  padding-left: 0.5em;
  border-left: 1.75px solid;

  line-height: 1.5em;
}

.main-heading {
  margin-block-start: 0.38em;
  margin-block-end: 0.48em;
}

.sub-heading {
  margin-block-end: 0em;
  /* color: #5e6a73; */
  /* color: #a3b4bd; */
  color: #98acb6;
}

.img-box {
  display: flex;
  justify-content: center;
  transition: all 0.8s;
}

.thumb-img {
  margin-top: 1.3em;
  margin-bottom: 2.3em;

  border-radius: 0.4em;
  box-shadow: 0 0 2em rgba(0, 0, 0, 0.35);

  position: relative;
  z-index: none;
  left: 0;
  width: 90%;
  transition: 0.4s;
}

.thumb-img:hover {
  box-shadow: 0 0 2.3em rgba(0, 0, 0, 0.4);

  position: relative;
  z-index: none;
  left: 0;
  width: 105%;
  transition: 0.4s;
}

iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  transition: all 0.4s;
}

code {
  font-family: "Red Hat Mono";
  font-size: 0.95em;

  color: #2c363f; /* 文字色 */
}

.inline-code {
  display: inline-block;
  padding: 0.001em 0.4em; /* 文字周りの余白 */
  line-height: 1.35em;

  background-color: #d2d5dd; /* 背景色 */

  border-radius: 4px; /* 角丸 */
  /* border: solid 1px #cccccc; 枠線 */
}

.code-block {
  display: block;
  font-size: 0.8em;
  line-height: 1.7em;
  overflow-x: auto;

  padding: 8px;
  padding-left: 1.25em;
  width: 80vw;

  background-color: #d2d5dd; /* 背景色 */

  border-radius: 4px;

  /* border-style: solid;
  border-color: #2c363f;
  border-width: 1px; */
}

@media (min-width: 576px) {
  .h45 {
    font-size: 14.64px;

    border-left: 3.25px solid;
  }

  .code-block {
    display: block;

    padding: 8px;
    padding-left: 1.25em;
    width: 80vw;

    border-radius: 6px;
  }
}

@media (min-width: 768px) {
  .img-box {
    display: block;
    padding-left: 1.3em;
  }

  .thumb-img {
    width: 80%;
  }

  .thumb-img:hover {
    width: 85%;
  }

  iframe {
    width: 80%;
  }

  .body-box {
    margin-left: 2.6rem;
    margin-top: 2.6rem;

    margin-right: 15%;
  }

  .code-block {
    display: block;

    padding: 8px;
    padding-left: 1.25em;
    width: 530px;

    border-radius: 6px;
  }

  hr {
    border-top: 0.5px solid;
    /* [CSSだけで実装！区切り線（hrタグ）のデザインサンプル集まとめ：SwitchBox](https://switch-box.net/css-hr-decorations.html) */
  }
}

@media (min-width: 992px) {
  .thumb-img {
    width: 70%;
  }

  .thumb-img:hover {
    width: 75%;
  }

  .body-box {
    margin-left: 4.4rem;
    margin-top: 4.6rem;

    margin-right: 20%;
  }

  .code-block {
    display: block;

    padding: 8px;
    padding-left: 1.25em;
    width: 550px;

    border-radius: 6px;
  }
}

@media (min-width: 1200px) {
  .thumb-img {
    width: 65%;
  }

  .thumb-img:hover {
    width: 70%;
  }

  .body-box {
    margin-left: 8.4rem;
    margin-top: 7.6rem;
  }
}

/* custom media query */
@media (min-width: 1300px) {
  .thumb-img {
    width: 75%;
  }

  .thumb-img:hover {
    width: 80%;
  }

  .body-box {
    margin-left: 12.4rem;
  }
}

@media (min-width: 1400px) {
  .body-box {
    margin-left: 14.4rem;

    margin-right: 30%;
  }
}

@media (min-width: 1600px) {
  .body-box {
    margin-left: 24.4rem;
  }
}

@media (min-width: 1800px) {
  .thumb-img {
    width: 65%;
  }

  .thumb-img:hover {
    width: 70%;
  }

  .body-box {
    margin-left: 24.4rem;

    margin-right: 35%;
  }
}

a {
  color: #69a0bc;
  text-decoration: none;

  position: relative;
  display: inline-block;
}

a:before,
a:after {
  position: absolute;
  content: "";
  display: block;
  top: 1.4em;
  width: 0;
  transition: width 0.3s;
  border-bottom: 1px solid #69a0bc;
}

a:before {
  left: 50%;
}

a:after {
  right: 50%;
}

a:hover:before,
a:hover:after {
  width: 50%;
}

.bold-a {
  font-weight: 500;
}

.level1-ul > li {
  font-weight: 500;
  list-style-type: disc;

  color: #347d87;
  /* color: #8d80ad; */
}

.level2-ul {
  padding-left: 26px;
}

.level2-ul > li {
  font-weight: 500;
  list-style-type: circle;

  color: #8d80ad;
  /* color: #347d87; */
}

.p-with-url {
  position: relative;
}

#gitlab-url {
  position: absolute;
  right: 0em;
  bottom: -1.6em;
  font-size: 0.95em;
}

.footer {
  display: flex;
  justify-content: center;

  margin-top: 4rem;
  margin-bottom: 2rem;
}

.page-switch > * {
  --margin-x: 0.4em;

  margin-left: var(--margin-x);
  margin-right: var(--margin-x);

  font-weight: 500;
}

@media (min-width: 768px) {
  .page-switch > * {
    --margin-x: 1.2em;

    margin-left: var(--margin-x);
    margin-right: var(--margin-x);
  }
}

@media (min-width: 992px) {
  .page-switch > * {
    --margin-x: 1.7em;

    margin-left: var(--margin-x);
    margin-right: var(--margin-x);
  }
}

@media (min-width: 1200px) {
  .page-switch > * {
    --margin-x: 2.1em;

    margin-left: var(--margin-x);
    margin-right: var(--margin-x);
  }
}

@media (min-width: 1400px) {
  .footer {
    margin-top: 12rem;
    margin-bottom: 4rem;
  }
}
